#ifndef NANE_CFGSERIALIZESYSTEM_H
#   define  NANE_CFGSERIALIZESYSTEM_H

#   include "nane/SerializeSystem/ISerializeSystem.h"
#   include <string>

namespace nane
{

    class CfgSerializeSystem
        : public ISerializeSystem
    {
    public:
        CfgSerializeSystem();
        ~CfgSerializeSystem();

    public:
        bool Initialize();
        void Shutdown();
        bool Deserialize( IInput* _input, ISerializationProtocol* _protocol, byte* _buffer, uint32 _bufferSize );
        ISerializationProtocol* CreateProtocol( IOutputRef* _output );
        void ReleaseProtocol( ISerializationProtocol* _protocol );

    private:
        bool ParseString_(std::string& _parsingString, ISerializationProtocol* _protocol);
    };

}   // namespace nane

#endif  // NANE_CFGSERIALIZESYSTEM_H
